import UIKit


class HomePopView: UIView, UITableViewDelegate, UITableViewDataSource {

    

    // MARK: - Block Properties

    var addViewBlock: ((Int) -> Void)?
    
    lazy var tableView: UITableView = {

        let tableView = UITableView(frame: CGRect(x: kScreenWidth - 170, y: GKNavHeight + 5, width: 150, height: 150), style: .plain)

        tableView.delegate = self
        tableView.dataSource = self
        tableView.sectionIndexBackgroundColor = .clear
        tableView.sectionIndexColor = .darkGray
        tableView.separatorStyle = .singleLine
        tableView.separatorColor = UIColor(red: 100/255, green: 100/255, blue: 100/255, alpha: 1)
        tableView.backgroundColor = UIColor.black
        tableView.layer.cornerRadius = 8
        
        if #available(iOS 11.0, *) {
            tableView.estimatedRowHeight = 0
            tableView.estimatedSectionFooterHeight = 0
            tableView.estimatedSectionHeaderHeight = 0
        }
        self.addSubview(tableView)
        return tableView
    }()
    var titleArray: [String] = []

    override init(frame: CGRect) {
        super.init(frame: frame)
        // 初始化代码通常放在这里，但加载XIB文件通常在viewDidLoad或类似方法中处理
        
        self.configure()
    }
    

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        // 加载XIB文件（如果WYHomeAddView是一个XIB中的视图）
        // 通常这会在一个控制器中处理，但如果你确实需要在视图中加载XIB，请确保这样做是合理的
        
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
//        self.configure()
    }
    
    // 假设你有一个配置方法
    func configure() {
        // 设置背景色等
        backgroundColor = UIColor(white: 0, alpha: 0.25)
        // 添加阴影等
        
        // 设置表格宽度
        
        // 注册单元格
        tableView.register(UINib(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "MyCell")
        
        // 设置标题数组
//        titleArray = ["Scan", "添加朋友", "发起群聊"].map { NSLocalizedString($0, comment: "") }
        titleArray = ["Scan", "发起群聊","加好友/群"].map { NSLocalizedString($0, comment: "") }

        
        // 设置代理和数据源
        tableView.delegate = self
        tableView.dataSource = self
        tableView.reloadData()
    }

    // UITableViewDataSource 方法
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return titleArray.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
        cell.contentView.backgroundColor = UIColor.black
        cell.accessoryType = .none
        cell.imgWidth.constant = 24
        cell.imgHeight.constant = 24
        cell.img.image = UIImage(named: "home\(indexPath.row + 1)")
        cell.titleLab.textColor = UIColor.white
        cell.titleLab.font = UIFont.systemFont(ofSize: 16, weight: .regular)
        cell.titleLab.text = titleArray[indexPath.row]
        return cell
    }

    // UITableViewDelegate 方法
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        // 移除视图或执行其他操作
        // 如果存在block，则调用它
        // 假设你有一个名为addViewBlock的闭包属性
        remove()
        addViewBlock?(indexPath.row)
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50
    }
    
    // MARK: - Other Methods

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        remove()
    }

    func show() {

        let view = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight))
        view.backgroundColor = UIColor.red
        UIApplication.shared.keyWindow?.addSubview(self)
    }

    func remove() {
        if superview != nil {
            self.removeFromSuperview()
        }
    }

    func hiddleAddView() {
        addViewBlock?(4)
    }

    

    // 其他方法...
}


////
////  HomePopView.swift
////  YueChat
////
////  Created by IMac on 2024/9/20.
////
//
//import UIKit
//
//class HomePopView: UIView, UITableViewDelegate, UITableViewDataSource {
//
//    @IBOutlet weak var tableView: UITableView!
//    var titleArray: [String] = []
//    @IBOutlet weak var bgView: UIView!
//    
//    private let cellImages: [String] = ["home1", "home2", "home3"]
//    private let titles: [String] = ["Scan", "AddFriend", "CreateGoup"]
//
//    required init?(coder aDecoder: NSCoder) {
//        super.init(coder: aDecoder)
////        setupFromNib()
//    }
//
//    func loadFromNib() -> UIView {
////        self.blockSearchStr = blockSearchStr
//        let bundle = Bundle(for: type(of: self))
//        let nib = UINib(nibName: "HomePopView", bundle: bundle)
//        return nib.instantiate(withOwner: self, options: nil).first as! UIView
//    }
//    
//    override init(frame: CGRect) {
//        super.init(frame: frame)
////        setupFromNib()
////        self.backgroundColor = UIColor.red
////        tableView.register(UINib(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "MyCell")
////        titleArray = titles.map { NSLocalizedString($0, comment: "") }
////        tableView.delegate = self
////        tableView.dataSource = self
////        tableView.separatorStyle = .none
////        tableView.reloadData()
//    }
//
//    override func awakeFromNib() {
//        super.awakeFromNib()
//        // Initialization code
//        if tableView != nil {
//            tableView.register(UINib(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "MyCell")
//            titleArray = titles.map { NSLocalizedString($0, comment: "") }
//            tableView.delegate = self
//            tableView.dataSource = self
//            tableView.separatorStyle = .none
//            tableView.reloadData()
//        }
//        
//    }
//    
//    private func setupFromNib() {
//        
//        if let viewArray = Bundle.main.loadNibNamed("HomePopView", owner: self, options: nil) {
//            if let view = viewArray.first as? UIView {
//                view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
//                view.backgroundColor = UIColor.black.withAlphaComponent(0.25)
//                tableView.register(UINib(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "MyCell")
//                titleArray = titles.map { NSLocalizedString($0, comment: "") }
//                tableView.delegate = self
//                tableView.dataSource = self
//                tableView.separatorStyle = .none
//                tableView.reloadData()
//            }
//        }
//    }
//
//    // MARK: - UITableViewDataSource Methods
//
//    func numberOfSections(in tableView: UITableView) -> Int {
//        return 1
//    }
//
//    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//        return titleArray.count
//    }
//
//    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//        let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
//        let imageName = cellImages[indexPath.row]
//        cell.img.image = UIImage(named: imageName)
//        cell.titleLab.text = titleArray[indexPath.row]
//        return cell
//    }
//
//    // MARK: - UITableViewDelegate Methods
//
//    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//        tableView.deselectRow(at: indexPath, animated: true)
//        remove()
//        addViewBlock?(indexPath.row)
//    }
//
//    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
//        return 0.001
//    }
//
//    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
//        return 0.001
//    }
//
//    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//        return 50
//    }
//
//    // MARK: - Other Methods
//
//    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
//        remove()
//    }
//
//    func show() {
//        
//        let view = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight))
//        view.backgroundColor = UIColor.red
//        UIApplication.shared.keyWindow?.addSubview(self)
//    }
//
//    func remove() {
//        if let superview = superview {
//            self.removeFromSuperview()
//        }
//    }
//
//    func hiddleAddView() {
//        addViewBlock?(4)
//    }
//
//    // MARK: - Block Properties
//
//    var addViewBlock: ((Int) -> Void)?
//}
//
//
